5
תגובות
נתקלתי בשאלה חדשה - נניח יש לי מודל שמתעסק עם הטבלה של המשתמשים ואני רוצה לשלוף מספר משתמשים לפי איידי.
אז עשיתי את הפונקציה הבאה:
מצד שני, במקום לקרוא לפונקציה מחוץ למודל, אני יכול פשוט לעשות כך:
אז השאלה מה עדיף ומומלץ לעשות?
ובמקרה שאני משתמש בפונקציה רק פעם אחת, האם עדיף לעשות את הקוד השני שרשמתי?
אז עשיתי את הפונקציה הבאה:
public static function findUsersById($userIds)
{
return self::model()->findAllByPk($userIds);
}
{
return self::model()->findAllByPk($userIds);
}
מצד שני, במקום לקרוא לפונקציה מחוץ למודל, אני יכול פשוט לעשות כך:
Users::model()->findAllByPk($userIds);
אז השאלה מה עדיף ומומלץ לעשות?
ובמקרה שאני משתמש בפונקציה רק פעם אחת, האם עדיף לעשות את הקוד השני שרשמתי?
5 תשובות
לכתוב מתודה סטטית שהמטרה שלה זה לקרוא למתודה סטטית אחרת זה מאוד מיותר,עדיף שתכתוב את זה פשוט בקונטרולר.
ענה
hebrewUrls
ב
06 לאוגוסט 2014
#
ויש מקרים שבהם עדיף ליצור מתודה במודל או שעדיף לא לעשות את זה בכלל?
לדוגמה, כשמדובר בשאילתה ארוכה? או כשאני משתמש באותה מתודה במספר מקומות שונים?
אם מדובר בשאילתה ממש מורכבת שאתה משתמש בא כמה פעמים ואולי תרצה לשנות אותה בעתיד אז כן,אבל כל עוד מה שהמתודה עושה זה לקרוא למתודה אחרת זה מאוד מיותר זה כמו לכתוב פונקציה לחיבור במקום לעשות 1+1.
אם יש לך שאילתה מורכבת אתה בדרך כלל תרצה להפוך אותה ל named scope ואז להשתמש בו במקומות אחרים.
באופן כללי, אם המתודה שלך עושה משהו מעבר למה שהמתודה הקיימת עושה - אתה יכול ליצור אותה, אך אם היא לא עושה שום דבר חדש ומועיל - תשלמש בזאת שכבר קיימת.